package d1_arrays;

import java.util.Arrays;
import java.util.function.IntToDoubleFunction;

public class ArraysDemo01 {
    public static void main(String[] args) {
        //目标: 掌握操作数组的工具类: Arrays的常见方法.
        // 1、返回数组的内容: public static String toString(类型[] a)//拼接成一个字符串进行展示
        int[] arr = {11, 55, 33, 32, 22, 98};
        String result = Arrays.toString(arr);
        System.out.println(result);

        // 2、拷贝数组的内容到一个新数组, 并返回新数组
        // public static 类型[] copyOfRange(类型[] original, int from, int to)
        int[] arr2 = Arrays.copyOfRange(arr, 1, 2);//包前部包后-->旧数组的开始与结束索引
        System.out.println(Arrays.toString(arr2));

        //3、给数组扩容
        //public static 类型[] copyOf(类型[] original, int newLength)
        int[] arr3 = Arrays.copyOf(arr, 10);
        System.out.println(Arrays.toString(arr3));

        //4、修改数组中的每个数据, 再存入
        double[] scores = {99.5, 90, 59.5, 78, 98, 55};
        //需求: 为每个分数加分10分----->典型的对象回调思想
        Arrays.setAll(scores, new IntToDoubleFunction() {
            @Override
            public double applyAsDouble(int value) {
                return scores[0] + 10;
            }
        });
        //展示数组
        System.out.println(Arrays.toString(scores));
        //5、Arrays类提供的对数组进行排序的操作
        Arrays.sort(scores);//默认升序(由小到大)
        //展示数组
        System.out.println(Arrays.toString(scores));

    }
}
